﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace Sped.Sped
{
    /// <summary>
    /// REGISTRO C120: COMPLEMENTO DO DOCUMENTO - OPERAÇÕES DE IMPORTAÇÃO (CÓDIGO 01)
    /// </summary>
    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ProgId("SpedPisCofins.RegC120")]
    [ComVisible(true)]
    public class RegC120 : IBloco
    {
        /// <summary>
        /// Documento de importação:
        ///     0 – Declaração de Importação;
        ///     1 – Declaração Simplificada de Importação
        /// </summary>
        public string COD_DOC_IMP { get; set; }
        /// <summary>
        /// Número do documento de Importação.
        /// </summary>
        public string NUM_DOC_IMP { get; set; }
        /// <summary>
        /// Valor pago de PIS na importação
        /// </summary>
        public double VL_PIS_IMP { get; set; }
        /// <summary>
        /// Valor pago de COFINS na importação
        /// </summary>
        public double VL_COFINS_IMP { get; set; }

 
        public override bool ValidaRegistro(ref string Erro)
        {
            var ValidacaoOK = true;
            Erro = "";

            if (string.IsNullOrEmpty(this.COD_DOC_IMP))
            {
                this.COD_DOC_IMP = string.Empty;
                Erro += "\r\n* Registro C120 - Documento de importação não informado.";
                ValidacaoOK = false;
            }

            if (!this.COD_DOC_IMP.StringIN("0-1"))
            {
                this.COD_DOC_IMP = string.Empty;
                Erro += "\r\n* Registro C120 - Documento de importação inválido.";
                ValidacaoOK = false;
            }

            if (string.IsNullOrEmpty(this.NUM_DOC_IMP))
            {
                this.NUM_DOC_IMP = string.Empty;
                Erro += "\r\n* Registro C120 - Número do documento de Importação não informado.";
                ValidacaoOK = false;
            }

            return ValidacaoOK;  
        }

        public override string Layout()
        {
            var Linha = string.Empty;

            Linha += "C120" + this.Delimitador;
            Linha += this.COD_DOC_IMP.Trim() + this.Delimitador;
            Linha += this.NUM_DOC_IMP.Trim() + this.Delimitador;
            Linha += this.VL_PIS_IMP.FormatoValorSped(2) + this.Delimitador;
            Linha += this.VL_COFINS_IMP.FormatoValorSped(2) + this.Delimitador;

            return Linha.Trim(); 
        }
    }
}
